home *** CD-ROM | disk | FTP | other *** search
- Frequently Asked Questions (FAQS);faqs.410
-
-
-
-
- Q10. Are there any FTP sites with Objective C code? Where?
-
- A10. Yes.
- There are NeXT related sites at
- sonata.cc.purdue.edu
- cs.orst.edu
- And non-NeXT related sites at
- ?
-
-
- Q11. I'm an emacs junkie. Are there any .el files somewhere to support
- Objective-C?
-
- A11. Yes. Try sonata.cc.purdue.edu /pub/next/misc/objc.tar.Z
-
-
- Q12. So show me a program, a simple example.
-
- A12. See the companion file "A S[ia]mple Objective-C Program" or get
- all of the code from music.sie.arizona.edu:pub/ObjC/Sample.tar.Z
-
-
- Q13. What are Protocols?
-
- A13. Protocols are an addition to (currently only NeXT's 3.0+ version of)
- ObjC that allow you to organize related methods into groups
- that form high-level behaviors. This gives library builders
- a tool to identify sets of standard protocols, independent of
- the class hierarchy. Protocols provide language support for
- the reuse of design, whereas classes support the reuse of code.
- Well designed protocols can help users of an application
- framework when learning or designing new classes. Here is a
- simple protocol definition for archiving objects:
-
- @protocol Archiving
- - read:(NXTypedStream *)stream;
- - write:(NXTypedStream *)stream;
- @end
-
- Once defined, protocols can be referenced in a class interface
- as follows:
-
- // MyClass inherits from Object and
- // conforms to the Archiving protocol
- @interface MyClass : Object <Archiving>
- @end
-
- Unlike copying methods to/from other class interfaces, any
- incompatible change made to the protocol will immediately be
- recognized by the compiler (the next time the class is
- compiled). Protocols also provide better type checking without
- compromising the flexibility of untyped, dynamically bound objects.
-
- MyClass *obj1 = [MyClass new];
-
- // legal, obj2 conforms to the Archiving protocol.
- id <Archiving> obj2 = obj1;
-
- // illegal, obj1 does not conform to the TargetAction
- // protocol.
- id <TargetAction> obj3 = obj1;
-
-
-
-
-
-
- Terminology
- ~~~~~~~~~~~
- C: A programming language.
- FTP: File Transfer Protocol.
- GNU: A project making freely available software.
- message: A "call" to an implementation of a method
- method: An implementation of an ObjC "function"
- factory method: A method which creates a new instance of a class
- class method: A method which acts on or with the whole of a class rather
- than an instance of a class. Often used interchangeably
- with _factory method_, but there is a subtle difference.
- instance method:A method witch acts on or with a specific instance of a
- class.
- OOP: Object Oriented Programming
- ObjC: An abbreviation of Objective-C
- Object: The base {class} of Objective-C.
- Objective-C: An Object Oriented programming language extended from
- the C language, and what this whole file is about.
- It is also a registered trademark of The Stepstone
- Corporation.
-
-
-
-
- ---
- All [**********] designate incompleteness of the FAQ. If you have any
- questions, corrections, comment, suggestions pass them along. I can be
- reached directly at <shirley@fdr.jsc.nasa.gov> or you can post to
- the news group (comp.lang.objective-c).
-
- Disclaimer: I am not related to any company or group mentioned above.
- This file was created to provide information to interested people, and
- not advertizing for anything listed above.
-
- gnu ftp site, prep.ai.mit.edu:pub/gnu/etc/DISTRIB
- (prep UK/Europe mirror) src.doc.ic.ac.uk (???)
- (prep Netherlands mirror) ftp.win.tue.nl (131.155.70.100)
- (prep UK mirror) src.doc.ic.ac.uk (146.169.3.7)
- (prep Japan mirror) utsun.s.u-tokyo.ac.jp (133.11.11.11)
- (Australian site) archie.au (IP number may change)
-
-
- My list of thanks has gotten a bit long, so instead of leaving
- anyone out, I'll just say thanks to all who have given feedback.
- This information is what YOU make it.
- ---
- --
- Bill Shirley
- shirley@fdr.jsc.nasa.gov
- --
- ``One lonesome body, Bill Shirley
- one lonesome song. shirley@fdr.jsc.nasa.gov
- No lonesome body,
- no lonesome song.'' - throwing muses
- Xref: bloom-picayune.mit.edu comp.lang.objective-c:1011 news.answers:4554
- Path: bloom-picayune.mit.edu!enterpoop.mit.edu!spool.mu.edu!olivea!sun-barr!cs.utexas.edu!bcm!aio!fdr!shirley
- From: shirley@fdr.uucp (Bill Shirley [CSC])
- Newsgroups: comp.lang.objective-c,news.answers
- Subject: Objective-C Simple Sample Program - FAQ
- Summary: A simple Objective-C program to give a sample of the syntax
- to someone unfamiliar with the language.
- Message-ID: <objc-prog_724237201@fdr.jsc.nasa.edu>
- Date: 13 Dec 92 09:00:40 GMT
- Expires: 26 Jan 1993 09:00:01 GMT
- References: <objc_724237201@fdr.jsc.nasa.edu>
- Sender: news@aio.jsc.nasa.gov (USENET News System)
- Followup-To: comp.lang.objective-c
- Organization: nasa-jsc
- Lines: 200
- Approved: news-answers-request@MIT.Edu
- Supersedes: <objc-prog_721077644@fdr.jsc.nasa.edu>
-
- Archive-name: Objective-C/sample-program
- Last-modified: 1992/11/01
- Version: 1.0
-
- A S[ia]mple Objective-C Program
- (a companion to the comp.lang.Objective-C FAQ file)
-
- // This is a comment. Everything to the right of a double slash
- // is ignored (until an end of line is reached).
-
- /*
- * This is too, that's what superset of ANSI C means; You can do
- * anything you can do in C in Objective-C. (not to suggest that
- * you should, only that you could.)
- */
-
- // The first thing we do is bring in some include files, as in
- // C. However, we'll use the "import" statement which guarantees
- // that the file isn't included more than once.
-
- // <objc/Object.h> is not really needed, because it is #imported
- // by the Queue and Stack headers, but we (as object users) don't
- // necessarily know that, so it is good practice to #import it
- // here. (When the processer reaches #import <objc/Object.h>
- // in the Queue and Stack headers, it will not include it.)
-
- #import <stdio.h>
- #import <objc/Object.h>
- #import "Queue.h"
- #import "Stack.h"
-
- // GNU gcc for some reason passes moral judgement on the useage
- // of #import, but still allows it. They suggest you use #ifndefs
- // in all of your header files to eliminate multiple includes.
-
- // That brought in class definitions for Objects, Queues, and
- // Stacks. Queue and Stack are classes of my own construction,
- // and I'm not going to go into details here. You don't need
- // to know how they work. The Object class is the basis for
- // all other classes, which is why it gets brought in first.
-
- // Classes are the one real extension which Objective C adds to
- // C. A class is a description of a collection of data, like a
- // C structure, and the methods by which that data may be accessed
- // or manipulated. Instances of a class are called objects, and
- // methods are invoked by sending messages to either the class itself,
- // to produce objects, or to those objects. The recipient of a message
- // is called a "receiver". The form of a message is:
- //
- // [receiver method andMaybeSomeArguments]
- //
- // the receiver and method components are mandatory, as are
- // the square brackets surrounding the message. Additional
- // arguments may or may not be present, depending upon the
- // method definition. Messages may appear anywhere a statement
- // is allowed in C.
-
- // Two simple Class definitions follow. Both inherit
- // directly from the base class "Object". This gives
- // them lots of nice properties, not the least of which
- // is the ability to be referenced by any pointer of the
- // generic object type "id". All objects can be pointed
- // to by any id variable, and the default return type from
- // methods is id. This allows messages to be embedded in
- // other messages, either as receivers or arguments.
-
- // An Int object allocates space for a single integer.
- // The "report" message causes it to report its value.
- // Everything between the @implementation and the @end
- // is part of the class definition...
-
- @implementation Int: Object // Int is derived from Object
- {
- int value; // This is the data portion. Like a struct.
- }
-
- // The following are the method definitions. The "+" means this
- // is a class method, i.e., a method that deals with classes instead
- // on instances. In this case it is a factory method, or one which
- // creates and returns a new instance of a class The body of the
- // method is between braces, like a C function.
-
- // Self is a special variable which may only be used within a method
- // and means the receiver of the message which invoked this message.
- // Super means that when searching for the method for this message
- // start in the parent class of the present implementation. This
- // does not, necessarily, have any relation to the value of self.
-
- + makeRoomFor: (int) i
- {
- id anInstance;
-
- anInstance = [super new];
- value = i;
- return anInstance;
- }
-
- // It is standard for methods that do not need to return any
- // special value to instead return self. This allows for a
- // nested syntax of method calls.
-
- // The "-" in front of report means that it's an instance method,
- // i.e., how a particular object should respond.
-
- - report
- {
- printf("%4d", value);
- return self;
- }
-
- @end
-
-
- // Same for a Float object, but for the obvious difference that
- // it works with floats.
- // Note polymorphism -- methods have same names as in the Int class.
-
- @implementation Float: Object
- {
- float value;
- }
-
- // Sometimes a factory method is written in the following manner. This
- // is not strictly correct, but since _self_ is a local variable, no
- // harm is done. It is also quite common to see this in code from the
- // net, so it is included here. In this case _self_, which is a class,
- // is assigned to return a value from [super new], which is an instance.
- // It may even help the compiler optimize if there is no assignment to
- // self while in a class method.
-
- + makeRoomFor: (float) x
- {
- self = [super new];
- value = x;
- return self;
- }
-
- - report
- {
- printf("%4.1f", value);
- return self;
- }
-
- @end
-
- void main()
- {
- // First we create instances of "Stack" and "Queue" data structures
-
- id queue = [Queue new];
- id stack = [Stack new];
- int i;
-
- for (i = 5; i > -6; --i)
- {
- // We alternate putting Int's and Floats onto the queue and
- // stack, based on whether "i" is odd or even. Whatever
- // type goes on the queue, the opposite goes on the stack.
-
- [queue put: (i & 1) ? [Int makeRoomFor: i] : [Float makeRoomFor: i]];
- [stack put: (i & 1) ? [Float makeRoomFor: i] : [Int makeRoomFor: i]];
- }
- while ([queue size] && [stack size])
- {
- // The following illustrates run-time binding. Will report be
- // invoked for a Float object or an Int object? We don't know
- // ahead of time, but with run-time binding and polymorphism
- // it works the way we like. The burden is on the class
- // implementor rather than the class user. In fact, we
- // could add another class (String? Complex?) and toss
- // instances onto the Stack and Queue without having to
- // change the following lines at all.
-
- // Both classes, Int and Float, just happen to implement the
- // method 'report'. They do not need to inherit from some
- // object 'Reportable', only to implement the report method.
- // If one did not implement the method, the message would
- // not be sent.
-
- printf("queue="); [[[queue get] report] free];
- printf(", stack="); [[[stack get] report] free];
- putchar('\n');
- }
- }
-
- ______
- If you have any questions, corrections, comment, suggestions pass them
- along. I can be reached directly at <shirley@krakatoa.jsc.nasa.gov> or you
- can post to the news group (comp.lang.objective-c)
-
- Thanks to Paul J. Sanchez, paul@music.sie.arizona.edu, for writing this
- program.
- --
- Bill Shirley
- shirley@fdr.jsc.nasa.gov
- --
- ``One lonesome body, Bill Shirley
- one lonesome song. shirley@fdr.jsc.nasa.gov
- No lonesome body,
- no lonesome song.'' - throwing muses
- Xref: bloom-picayune.mit.edu comp.os.os2.misc:43033 comp.os.os2.apps:9294 news.answers:4353
- Newsgroups: comp.os.os2.misc,comp.os.os2.apps,news.answers
- Path: bloom-picayune.mit.edu!enterpoop.mit.edu!spool.mu.edu!uwm.edu!ux1.cso.uiuc.edu!uchinews!ellis!sip1
- From: sip1@ellis.uchicago.edu (Timothy F. Sipples)
- Subject: OS/2 Frequently Asked Questions Rel. 2.0h (1 of 2)
- Message-ID: <1992Dec2.033606.17639@midway.uchicago.edu>
- Followup-To: comp.os.os2.misc
- Sender: news@uchinews.uchicago.edu (News System)
- Supersedes: <1992Oct26.002516.25594@midway.uchicago.edu>
- Reply-To: sip1@midway.uchicago.edu
- Organization: University of Chicago Computing Organizations
- Date: Wed, 2 Dec 1992 03:36:06 GMT
- Approved: news-answers-request@mit.edu
- Expires: Sat, 30 Jan 1993 23:59:59 GMT
- Lines: 800
-
- Archive-name: os2-faq/user/part1
- Version: 2.0h
-
- OS/2 Frequently Asked Questions List: User's Edition
- Release 2.0h; December 2, 1992
- Compiled by Timothy F. Sipples
-
- For changes/suggestions/additions please mail sip1@ellis.uchicago.edu or
- T. Sipples, Ctr. for Population Econ., Univ. of Chicago, Chicago, IL,
- 60637, U.S.A. This List may be freely distributed. Mention of a
- product does not constitute an endorsement. Customers outside the U.S.
- should not necessarily rely on 800 telephone numbers, part numbers, or
- upgrade policies contained in this List. Electronic mail addresses are
- in Internet form; use addressing appropriate to your mail system.
-
- Release Notes:
-
- Because of the many loyal fans of the OS/2 FAQ List, I have been named
- to the "Team OS/2 Hall of Fame." Many thanks.
-
- For Internet readers, the FAQ List now appears in two messages due to an
- increase in length. I will continue to try and keep it from becoming
- too long, however. Readers should be aware that a Rich Text Format
- (RTF) version should accompany this List if you have retrieved it from a
- BBS or archive (usually as a ZIP file). The RTF version includes
- revision markings, so you can tell at a glance what has changed since
- the last release. If you did not receive the RTF version, please ask
- your system operator to try to obtain the correct package from now on.
- You can start with the original distribution points for the FAQ List:
- Pete Norloff (OS/2 Shareware BBS, 703-385-4325), Cliff Nadler (IBM
- internal VNET), and ftp-os2.nmsu.edu (Internet, anonymous ftp). (Please
- contact me if you would like to volunteer to redistribute the FAQ List
- to CompuServe, BIX, or other major networks. You should be able to
- receive Internet mail. CompuServe, BIX, MCI Mail, and addresses for
- most other major networks are acceptable, since gateways exist. Note
- that I cannot entertain requests for subscriptions to a "mailing list.")
- An INF version (for use with OS/2's VIEW command) of the FAQ List may be
- released in the future (to replace the RTF version) so you will want to
- make sure you are getting the whole package.
-
- The OS/2 FAQ List: Programmer's Edition should be available from the
- same source as this User's Edition. It is maintained by my Internet
- colleague Barry Jaspan (bjaspan@athena.mit.edu). Send your suggestions
- on programming questions to him. Before long we may have a Networking
- Edition as well.
-
- Questions addressed herein:
-
- (1) What is OS/2?
- (2) What are the differences between versions?
- (3) What is Extended Services?
- (4) How good is OS/2 2.0's DOS and Windows compatibility?
- (5) Where can I buy OS/2, and how much does it cost?
- (6) What hardware do I need to run IBM OS/2 2.0? Do I need a PS/2?
- (7) What applications are available for OS/2?
- (8) Where can I obtain OS/2 shareware and freeware?
- (9) I am having trouble installing OS/2 2.0. What should I do?
- (10) Will OS/2 2.0 work with my SuperVGA adapter?
- (11) Will OS/2 2.0 work with my printer?
- (12) How do I access HPFS partitions on my hard drive without booting
- from the hard drive? I'm getting error messages now -- how do I
- "repair" my hard disk?
- (13) I can't install OS/2 from Drive B. What's wrong?
- (14) Is there a Norton Utilities for OS/2?
- (15) Sometimes OS/2 2.0 will freeze when I run an application. What do
- I do?
- (16) How can I get answers to my OS/2 questions?
- (17) Why should I use HPFS? What does it offer me? Does it work with
- DOS?
- (18) I'm a Unix wizard. How do I make OS/2 resemble Unix?
- (19) I prefer Windows. How do I make OS/2 2.0 resemble Windows (or
- OS/2 1.3)?
- (20) I would like to set up an OS/2 BBS. What is available?
- (21) Can I use COM3 and COM4 in OS/2 2.0?
- (22) How do I start a background process from the OS/2 command line?
- (23) What are CSDs, how do I tell which I have, and where do I get
- them?
- (24) How do I add new Adobe Type Manager typefaces?
- (25) How do I tweak OS/2 2.0 for maximum performance?
- (26) What networking products are available for OS/2 2.0?
- (27) Should I worry about viruses when running OS/2 2.0?
- (28) Are there any clever tricks that apply to OS/2 2.0?
- (29) What do I need for OS/2 multimedia applications?
- (30) How do I measure OS/2 performance and memory usage?
- (31) What can I do to promote OS/2?
- (32) My background bitmap does not display correctly. What's wrong?
- (33) What is the best way to partition my hard disk for OS/2?
-
- ----------------------------------------------------------------------
-
- (1) What is OS/2?
-
- OS/2 is an advanced operating system for PCs and PS/2s with an 80286
- processor or better. It was codeveloped by Microsoft and IBM and
- envisioned as the successor to DOS.
-
- It was designed from the ground up with preemptive multitasking and
- multithreading in mind. It also protects applications from one another
- (a single misbehaved program will not typically disrupt the entire
- system), supports all addressable physical RAM, and supplies virtual
- memory to applications as requested, breaking DOS's 640K barrier.
-
- As shipped, it does not support multiuser operation, although third
- parties have grafted multiuser capabilities onto the base operating
- system. Remote-OS (The Software Lifeline, 407-994-4466), OS2YOU
- (shareware; see Question 8), Citrix (Citrix Systems, 305-755-0559), and
- PolyMod2 (MemSoft) are four such products. PC/DACS (Pyramid, 203-257-
- 4223) offers security (for multiple users, one at a time, in a lab
- setting for example).
-
- ------------------------------
-
- (2) What are the differences between versions?
-
- IBM OS/2 Version 2.0 (CSD Level 06050, see Question 23) will run only on
- machines with an 80386SX processor or better. IBM is developing OS/2
- (and its Intel and non-Intel-based successors) independently but is
- involving third party PC manufacturers in its testing. Improvements
- include an object-oriented Workplace Shell (WPS); a multiple operating
- system boot mechanism; better DOS and Windows support (see Question 4);
- new 32-bit programming interfaces; support for more than 16 MB of
- physical RAM (on all systems with appropriate BIOS support, except those
- which must rely on 24-bit DMA for disk access, e.g. AT bus systems with
- Adaptec 154x SCSI adapters); and more third party device drivers. OS/2
- 1.x applications, unmodified, still run under OS/2 2.0.
-
- IBM OS/2 Version 1.3 is the last release of OS/2 to operate on PCs with
- 80286 CPUs. This version introduced built-in Adobe Type Manager (ATM),
- providing scalable typefaces for screen and printer. Procedures
- Language/2 (REXX), a powerful batch-oriented programming language,
- became a part of Standard Edition with this release. (A few OEMs are
- shipping Microsoft OS/2 Version 1.3, but Microsoft has all but abandoned
- OS/2 development.)
-
- OS/2 Version 1.2 was the first to incorporate the High Performance File
- System (HPFS). With this release IBM OS/2 added a dual boot mechanism
- and IBM Extended Edition introduced REXX.
-
- OS/2 Version 1.1 was the first to include the Presentation Manager (PM)
- GUI/API. Microsoft OEM versions added a dual boot mechanism with this
- release.
-
- OS/2 Version 1.0, introduced in 1987, was the first release of OS/2.
- Task switching was accomplished using a character-based shell and
- limited DOS compatibility was provided.
-
- ------------------------------
-
- (3) What is Extended Services?
-
- Prior to Version 2.0, IBM offered two separate packages with each
- release of OS/2: Standard Edition and Extended Edition. Extended
- Edition included extra, bundled software products: the Communications
- Manager (for communication with IBM mainframes, minicomputers, and other
- hosts), Database Manager (a full, network aware, relational database),
- and LAN Requester.
-
- IBM has now unbundled the Extended Edition features, dropped LAN
- Requester from the package (now available separately, with IBM's LAN
- Server), updated it for OS/2 2.0, and renamed it Extended Services 1.0.
- ES, by itself, no longer includes the base operating system as Extended
- Edition once did.
-
- This new arrangement makes it easier to update the base operating system
- with CSDs (see Question 23). And now ES 1.0 will run under OS/2 1.3
- Standard Edition as well as OS/2 2.0. Also, ES 1.0, like OS/2 2.0
- itself, is designed to operate on both IBM and non-IBM systems (see
- Question 6).
-
- ------------------------------
-
- (4) How good is OS/2 2.0's DOS and Windows compatibility?
-
- OS/2 1.x justifiably earned a reputation for poor DOS compatibility.
- Since it was hampered by the 80286, it could not run more than one DOS
- application at a time.
-
- The situation has changed dramatically with OS/2 2.0. Version 2.0
- preemptively multitasks DOS and Windows (real and standard mode)
- applications in separate, protected sessions, without purchasing either
- environment.
-
- OS/2 2.0 provides a complete DOS emulation equivalent to DOS 5.0. The
- operating system can provide each DOS application with up to 32 MB of
- EMS 4.0 (expanded memory), 16 MB of XMS 2.0 (extended memory), and/or
- 512 MB of DPMI 0.9 (DOS Protected Mode Interface extended memory), all
- from its pool of physical and/or virtual memory (meaning you do not have
- to have as much RAM in your system as your applications request). These
- limits are in addition to the up to 730K free conventional memory
- supplied to each DOS application, even after mouse and network drivers
- are loaded. As in DOS 5.0, DOS code and device drivers may be loaded
- into high memory. A 386 memory manager like QEMM is not needed -- these
- features are provided by OS/2 2.0 directly.
-
- The DOS emulation allows customization of device driver sets -- each DOS
- application shares a systemwide CONFIG.SYS and the equivalent of its own
- CONFIG.SYS. Also, there is a systemwide AUTOEXEC.BAT file; batch
- commands particular to each DOS application can be invoked using
- separate, application-specific batch files. And many DOS Settings are
- provided to fine tune each DOS/Windows application's behavior (e.g.
- IDLE_SENSITIVITY). Most of the popular DOS/Windows applications on your
- hard disk will be migrated automatically when you install OS/2 2.0.
-
- In addition, OS/2 2.0 will boot one or more specific versions of DOS in
- separate sessions, to assist in running particularly difficult
- applications (e.g. DOS networks, MSCDEX). So, for example, it is
- possible to multitask DOS 3.3, DOS 4.0, DOS 5.0, emulated DOS, and
- Desqview running atop DOS, all in separate sessions, either windowed or
- full screen, all with the same and/or separate device drivers, TSRs,
- environment variables, etc. DOS boot images may be stored on a hard
- disk. These procedures are described in the online Command Reference
- (under VMDISK) and in the Installation Guide, Appendix E.
-
- Standard graphics modes (generally up to the resolution of the desktop;
- see Question 10) are supported in DOS windows, as are selectable text
- mode fonts. Cut/paste to/from windowed DOS applications is supported
- (to/from other DOS, OS/2, and Windows applications), including graphics
- cut/paste. Theoretically, OS/2 2.0 will run up to 240 simultaneous
- DOS/Windows sessions; the practical maximum depends on system resources.
-
- OS/2 2.0 will, in fact, run virtually all DOS applications in existence,
- including notorious ones such as Microsoft Flight Simulator, Wing
- Commander, Maple, MatLab (Ver. 3.5k or later), and others. Those that
- do not run generally fall into the following categories:
-
- (a) Programs that use Virtual Control Program Interface (VCPI) memory
- extenders or other extenders which require direct access to 80386
- control registers. Since such applications are also all but
- incompatible with Windows, most vendors have updates for DPMI
- compatibility;
-
- (b) Applications which attempt to directly address the physical sectors
- of an OS/2 managed nonremoveable hard disk drive. Such programs include
- UnErase in Norton Utilities. Fortunately OS/2 2.0 has a built-in
- UnDelete feature which is more robust than Norton's approach. (Consult
- the online Command Reference for information on how to enable UNDELETE);
-
- (c) Timing sensitive DOS applications. Certain DOS programs that
- generate digitized sound through the PC's internal speaker may have
- distorted sound. High speed, real time data collection may be
- compromised. These problems can often be minimized or even eliminated
- using OS/2 2.0's DOS Settings.
-
- (d) Certain DOS programming debuggers. DOS applications running under
- OS/2 2.0 are not permitted to access debug registers DR0-DR7 from a DOS
- session. Also, DOS debuggers will not be able to set hardware
- breakpoints, and all read/write operations to debug registers in virtual
- 8086 mode will be ignored.
-
- Generally DOS backup programs will work under OS/2 2.0, but they may not
- capture some OS/2 data (especially extended attributes) on the hard disk
- without the assistance of utilities such as EABackup (available from
- sources listed in Question 8). OS/2 backup tools are available, notably
- IBM's PMTape and PS2Tape (for IBM and Irwin tape systems), Sytos Plus
- (Sytron, 508-898-0100), EZTape (Irwin, 313-930-9000), DMS/Intelligent
- Backup (Sterling, 916-635-5535), FileSafe (Mountain, 408-438-2665),
- KeepTrack Plus (Finot, 800-748-6480), NovaBack (NovaStor, 818-707-9900),
- OBackup (from sources listed in Question 8), and MaynStream (Maynard,
- 407-263-3500). The OS/2 BACKUP utility is best used from an OS/2
- diskette boot (see Question 12). DOS-based disk caching software is not
- required since OS/2 includes a built-in, highly configurable, efficient
- disk cache.
-
- DOS programs running under OS/2 2.0 are extremely fast. A single DOS
- application (no other applications open) running full screen under OS/2
- 2.0 typically achieves 95-97% of the performance it would have under
- native DOS. If the DOS application performs any disk I/O it can
- actually operate up to three times faster than it would if running under
- native DOS.
-
- If pure DOS is absolutely required, OS/2 2.0 includes a utility called
- the Boot Manager. The Boot Manager can provide a listing of all the
- operating systems available on the system and will allow selection of
- any one at startup, with a default after timeout. The OS/2 1.x DualBoot
- method is still available as well. Consult the Installation Guide for
- instructions on how to use Boot Manager or DualBoot. Note that OS/2 2.0
- need not be installed on Drive C -- it can reside on other volumes.
-
- Compatibility with Windows, a popular DOS extender, is provided by Win-
- OS/2, an environment based on Microsoft's Windows source code. It runs
- Windows 2.x and 3.0 real mode and standard mode applications under OS/2
- 2.0, either on a full screen Windows desktop (with the familiar Program
- Manager and one or more Windows applications) or "seamlessly," alongside
- OS/2 applications on the WPS desktop. "Seamless" operation is available
- in VGA, Tseng 4000 SuperVGA, and XGA resolutions with OS/2 2.0 as it
- ships; see Question 10 for information on third party drivers.
-
- Several icon conversion utilities, available from sources listed in
- Question 8, can convert Windows icons for use by the OS/2 Icon Editor
- and/or OS/2-specific programs. (No conversion is necessary if the icons
- are to be used with Windows programs running under OS/2 2.0.)
-
- OS/2 2.0 directly provides Windows enhanced mode features save one:
- services included in WINMEM32.DLL. Windows applications which utilize
- this DLL (e.g. Mathematica 2.0, Omnipage Professional 1.0) will not run
- under OS/2 2.0. Fortunately the number of WINMEM32 applications is few,
- and apparently the vendors of such applications will be shipping OS/2
- 2.0 compatible updates.
-
- Windows applications are well integrated into the overall OS/2 WPS
- environment with DDE and Clipboard hooks, and OLE 1.0 is supported among
- Windows applications. ATM for Win-OS/2 comes with OS/2 2.0 (see
- Question 24). Windows screen (for a full screen desktop) and printer
- device drivers will work under Win-OS/2. Such notorious Windows
- applications as Word, Norton Desktop (save portions described above),
- Toolbook, and After Dark work fine under Win-OS/2. Even the Windows
- Multimedia Extensions (and programs which utilize them) operate under
- Win-OS/2. (For information on the OS/2 2.0 multimedia extensions see
- Question 29.)
-